Typically a computing device is capable of serving one or more purposes defined by the operating system used by the computing device and one or more application programs that are installed on the computing device. To purpose a computing device, a user typically has to sequentially and manually install an operating system, install one or more application programs, and configure the operating system and application program to work with each other. Additionally, in some but not all operating system environments, such as the WINDOWS® NT and WINDOWS® 2000 operating system environments, when the computing device is added as a node in a secure network environment, the user has to ensure that a unique security identifier is properly generated and assigned to the computing device. This process can be very time consuming depending on the complexity of the operating system and application program in question, and more typically requires complex scripts and custom development.
Moreover, it is not uncommon in a corporate or commercial setting that this process has to be repeated for hundreds or thousands of computing devices.
One situation in which there is a need to purpose hundreds or thousands of computing devices is an Internet Service Provider (ISP) or Application Service Provider (ASP). As one example, an ISP may have contracts with hundreds or thousands of customers to design, implement and/or operate the customers' web sites. For each customer, the ISP will purpose one or more web servers to provide the client's web site needs. Each customer, however, is likely to have varying amounts of traffic to its web site, depending on numerous factors including the time of year, or special occasions or events. Each customer needs to be assigned a sufficient number of servers to cope with reasonably expected peak traffic to the web site, although it is unlikely that every customer will experience peak traffic to its web site at the same time.
This arrangement is expensive for both the customer and the ISP because, except during periods of peak use, the computing devices are likely to be underutilized. Thus, the ISP has to maintain computing devices that are underutilized most of the time.
Similarly, the customer has to pay for computing devices that are not efficiently used at all times. Because repurposing a computing device is such a difficult and time consuming procedure, once a computing device is purposed for a particular customer the ISP is unlikely to repurpose the computing device during periods when it is underutilized. It is difficult, therefore, for an ISP to reallocate computing devices based on a customer's current computing needs.
The time consuming nature of purposing computing devices is also troublesome to an ISP when a particular computing device experiences a failure or error. For example, if the computing device has to be replaced, the ISP has to manually install an operating system, an application program and configure a new computing device to replace the one that failed. This process may take hours to complete, and in the meantime a customer web site may experience problems such as being completely down, being unduly slow, losing sales, etc.
Another situation in which there is a need to purpose hundreds or thousands of computers is when, for example, a large corporation purchases many computing devices and needs to purpose those computers for its employees. Every computer will have to be individually configured after manually installing an operating system and any desired application programs. There are methods to somewhat automate this process by “burning” the system image on the hard drives of the computers in an assembly line fashion. The process is still onerous and time consuming however, because the hard drives will have to be physically removed and reinserted into the computers.
application Ser. No. 09/713,740 filed on Nov. 15, 2000, entitled “Method and System For Dynamically Purposing A Computing Device,” to which the present application is a continuation-in-part, describes a system and method for overcoming the shortcomings described above. The disclosure of the '740 application is hereby incorporated in its entirety. The method and system disclosed in the '740 application allows for dynamically purposing a computing device, such as a general-purpose desktop computer or a server, that is added to a network environment or that is already a part of the network. In this manner, for large computing customers, computing nodes can be repurposed on an ongoing basis.
The system and method of the '740 application uses a library of preconfigured system images that may be comprised of one or more operating systems and/or one or more application programs. A controller monitors all the computers on the network and repurposes any computers as desired or necessary. The controller is responsible for managing and controlling a repurposing operation, which includes transfer of a selected system image from the library of system images to a designated computer.